In current pixel rendering systems, textile fetches may be performed for multiple elements of a single pixel, such as Y, U and V. The shader operations may be performed on multiple pixel elements in parallel. Although these systems limit the output of converted pixels in ARGB format directly to multi-buffers, but prevent simultaneous transfers from various multi-buffers to a frame buffer.
Due to the limitation of not being able to export more than one pixel elements across four separate channels, such as an A channel, R channel, G channel and B channel of an ARGB formatted pixel, to the same memory, current processing approaches provide for the pixel shader to export one pixel to the render backend at a time. For example, converting YUY2 formatted pixels to ARGB32 formatted pixels provides for the conversion from four bytes in the YUY2 format to produce two pixels of ARGB32 format. Because of the limitations, fetching four bytes of YUY2 pixel data and processing the pixel data, outputting two pixels of ARGB32 cannot be achieved. One current solution is to process one YUY2 pixel twice, each process outputs a single ARGB32 pixel. Moreover, two texture fetches maybe performed for each ARGB32 output. In one embodiment, one fetch is two bytes, which can contain one Y component, and the other fetch is four bytes, which contains one byte of U component and byte of V component. Thereupon, the shader can process and output one pixel in ARGB32 format.
In this embodiment, for the second pixel of ARGB32 format, the same YUY2 would fetch the next two bytes of YUY2 containing the second Y component and fetch the same four bytes containing the same U and V components from the first process. Thereupon, the current approach not only requires extraneous fetches but also limits available processing speeds due to prohibitions of simultaneous pixel transfers from multi-buffers to a corresponding frame buffer.
Therefore, there exists a need for a system allowing for pixel conversion with multi-buffers and the parallel data transfer of multiple converted pixels to a corresponding frame buffer or another suitable memory structure.